package org.mall.modules.seller.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.mall.modules.pojo.shop.ShopDTO;
import org.mall.modules.seller.entity.Seller;
import org.mall.modules.seller.entity.SellerVo;

import java.util.List;

/**
 * @Description: 商户/店员
 * @Author: jeecg-boot
 * @Date:   2019-10-23
 * @Version: V1.0
 */
public interface ISellerService extends IService<Seller> {
    /**
     * 商户店员查询通过手机号查询
     * @param mobile
     * @return
     */
    Seller getOneByMobile(String mobile);
    /**
     * 商户/店员通过用户名查询
     * @param username
     * @return
     */
    Seller getOneByUserName(String username);

    /**
     * 查询该用户是否已添加过
     * @param mobile

     * @return
     */
    Seller getOneUser(String mobile);
    /**
     * 删除用户----二次添加
     * @param id
     */
    void recoverOneUser(String id);
    /**
     * 商户删除一个店员
     * @param id
     */
    void deleteOneById(String id);

    /**
     * 商户批量删除店员
     * @param asList
     */
    void deleteListById(List<String> asList);

    /**
     * 新增一个店主与店员的关系
     * @param id
     * @param clerkId
     * @return
     */
    boolean insertOneClerkRelationShip(String id, String clerkId);

    /**
     * 商户删除与店员的关系
     * @param sellerId
     * @param clerkId
     */
    void deleteOneSellerClerk(String sellerId, String clerkId);

    /**
     * 商户批量删除与店员的关系
     * @param sellerId
     * @param clerkIds
     */
    void deleteListSellerClerk(String sellerId, List<String> clerkIds);

    /**
     * 获取该商户下的店员列表
     * @param userId
     * @return
     */
    List<SellerVo> getListOfClerk(String userId);

    /**
     * 获取该商户下的店铺列表
     * @param userId
     * @return
     */
    List<ShopDTO> getListOfStores(String userId);

    /**
     * 通过id删除一个商户(逻辑删除，更新is_delete为1)
     * @param id
     */
    void deleteOneSeller(String id);

    /**
     * 通过id批量删除商户
     * @param asList
     */
    void deleteListSeller(List<String> asList);

    void addSellerShopRelationShip(String id, String id1);
    /**
     * 查询店员所属商铺列表
     * @param sellerId
     * @return
     */
    List<ShopDTO> queryClerkBelongShops(String sellerId);

    String getMobileById(String receiver);

    /**
     * 根据店铺id查询用户id
     * @param shopId
     * @return
     */
    SellerVo getSellerIdByShopId(String shopId);

    List<SellerVo> getSellersFilterIsDeleteAndType(SellerVo vo, Integer pageNo, Integer pageSize);
}
